package com.example.demomk.Utils;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class TimeUtils {

    /**
     * 获取当前时间，格式为 yyyy-MM-dd HH:mm:ss
     *
     * @return 格式化后的时间字符串
     */
    public static String getCurrentTime() {
        return formatTime(System.currentTimeMillis());
    }

    /**
     * 将时间戳转换为 yyyy-MM-dd HH:mm:ss 格式
     *
     * @param timestamp 时间戳（毫秒）
     * @return 格式化后的时间字符串
     */
    public static String formatTime(long timestamp) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
        return sdf.format(new Date(timestamp));
    }
    public static String getTime() {
        return getTime(System.currentTimeMillis());
    }
    public static String getTime(long timestamp) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault());
        return sdf.format(new Date(timestamp));
    }

    //
    public static String formatTimeString(String timeString) {
        try {
            // 支持解析多种格式（可扩展）
            SimpleDateFormat inputSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
            Date date = inputSdf.parse(timeString);
            if (date == null) {
                throw new IllegalArgumentException("无法解析时间字符串: " + timeString);
            }
            return getTime(date.getTime());
        } catch (Exception e) {
            e.printStackTrace();
            return null; // 或者抛出异常
        }
    }
    /**
     * 获取当前时间戳（毫秒）
     *
     * @return 当前时间戳
     */
    public static long getCurrentTimestamp() {
        return System.currentTimeMillis();
    }

    /**
     * 将时间字符串转换为时间戳（毫秒）
     *
     * @param timeString 时间字符串（格式必须为 yyyy-MM-dd HH:mm:ss）
     * @return 时间戳（毫秒）
     * @throws Exception 如果时间格式不匹配会抛出异常
     */
    public static long parseTime(String timeString) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault());
        Date date = sdf.parse(timeString);
        return date != null ? date.getTime() : 0;
    }
}